type Join<T, U extends number | string> = T extends [infer F, ...infer Rest]
  ? Rest extends []
    ? F
    : `${F & string}${U}${Join<Rest, U>}`
  : never;
